package org.bookmarksframework.manager
{
	import flash.events.IEventDispatcher;
	
	import org.bookmarksframework.BookmarksConfig;
	import org.bookmarksframework.core.CommitInfo;
	import org.bookmarksframework.core.IFragment;
	import org.bookmarksframework.core.Path;
	
	public interface IBookmarksManager extends IEventDispatcher
	{
		[Bindable("activePathChanged")]
		function get activePath():Path;
		
		[Bindable("defaultPathChanged")]
		function get defaultPath():Path;
		
		[Bindable("viewMapChanged")]
		function get viewMap():XML;
		
		function initialize(config:BookmarksConfig = null):IBookmarksManager;
		
		function register(fragment:IFragment):void;
		
		function unregister(fragment:IFragment):void;
		
		function commit(path:*, fragment:IFragment = null):CommitInfo;
		
		function getFragment(uid:String):IFragment;
		
		function get config():BookmarksConfig;
	}
}